<GRAMMAR LANGID="409">

  <DEFINE>
    <ID NAME="RID_tous_rule" VAL="1"></ID>

    <ID NAME="RID_Semicolon" VAL="39"></ID>
    <ID NAME="RID_Comma" VAL="40"></ID>
    <ID NAME="RID_Dot" VAL="41"></ID>

    <ID NAME="RID_integer" VAL="200"></ID>
    <ID NAME="RID_float" VAL="201"></ID>

    <ID NAME="RID_natural_number" VAL="101"></ID>
    <ID NAME="RID_cardinal" VAL="102"></ID>
    <ID NAME="RID_numeral_sign" VAL="103"></ID>
    <ID NAME="RID_digit_nonzero" VAL="104"></ID>
    <ID NAME="RID_teens" VAL="105"></ID>
    <ID NAME="RID_tensfrag" VAL="106"></ID>
    <ID NAME="RID_cardinal_1_to_99" VAL="107"></ID>
    <ID NAME="RID_cardinal_1_to_hundreds" VAL="108"></ID>
    <ID NAME="RID_cardinal_1_to_thousands" VAL="109"></ID>
    <ID NAME="RID_cardinal_1_to_millions" VAL="110"></ID>
    <!--<ID NAME="RID_cardinal_1_to_billions" VAL="111"></ID>
    <ID NAME="RID_cardinal_1_to_trillions" VAL="112"></ID>-->
  </DEFINE>

  <RULE NAME="tous_rule" ID="RID_tous_rule" TOPLEVEL="ACTIVE" DYNAMIC="TRUE">
    <L>

      <P>
        <L>
          <P>B</P>
          <P DISP="B">BIN</P>
        </L>
        <L>
          <P>S</P>
          <P DISP="S">SEARCH</P>
        </L>
        <L>
          <P>T</P>
          <P DISP="T">TREE</P>
        </L>
      </P>

      <P>
        <L>
          <P>M</P>
          <P DISP="M">MARY</P>
        </L>
        <L>
          <P>S</P>
          <P DISP="S">SEARCH</P>
        </L>
        <L>
          <P>T</P>
          <P DISP="T">TREE</P>
        </L>
        <O>
          with order <RULEREF NAME="integer"/>
        </O>
      </P>

      <P>DEFINITIONS</P>
      <P>DEFINITION</P>
      <P>ACTION</P>
      <P>FUNCTION</P>
      <P>INTEGER</P>
      <P>INTEGERS</P>
      <P>BOOLEAN</P>
      <P>BOOLEANS</P>
      <P>BUFFER</P>
      <P>CHAR</P>
      <P>CHARACT</P>
      <P>CHARACTER</P>
      <P>CHARACTERS</P>
      <P>STRING</P>
      <P>OF</P>
      <P>SOME</P>
      <P>DYNAMIC</P>
      <P>DYNAMICS</P>
      <P>FILE</P>
      <P>FILES</P>
      <P>QUEUE</P>
      <P>QUEUES</P>
      <P>SON</P>
      <P>LIST</P>
      <P>LISTS</P>
      <P>BILIST</P>
      <P>+STACK</P>
      <P>STACKS</P>
      <P>
        <L>
          <P>POINTERS</P>
          <P>POINTER</P>
        </L>
        <O>
          TO
          <L>
            <P>LIST</P>
            <P>LISTS</P>
          </L>
        </O>
      </P>

      <P>DEFINITIONS</P>

      <P>DEFINITION</P>

      <P>
        <L>
          <P>STRUCTURE</P>
          <P>STRUCTURES</P>
          <P DISP="STRUCTURE">STRECTERE</P>
        </L>
        <O>
          with <RULEREF NAME="integer"/>
          <L>
            <P>argument</P>
            <P>arguments</P>
          </L>
        </O>
      </P>

      <P>
        <L>
          <P>ARRAY</P>
          <P>ARRAYS</P>
          <P>VECTOR</P>
          <P>VECTORS</P>
        </L>
        <O>
          with <P DISP=" ">order</P>  <RULEREF NAME="integer"/>
        </O>
      </P>

      <P>
        <L>
          <P>ARRAY</P>
          <P>ARRAYS</P>
          <P>VECTOR</P>
          <P>VECTORS</P>
        </L>
        <O>
          with size <RULEREF NAME="integer"/>
        </O>
      </P>

      <P>NEXT ARGUMENT</P>

      <P>
        ADD
        <L>
          <P>
            <RULEREF NAME="integer"/>
            <L>
              <P>argument</P>
              <P>arguments</P>
            </L>
          </P>
          <P>Semi Colon To End Line</P>
        </L>
      </P>

    </L>
  </RULE>

  <RULE NAME="Semicolon" ID="RID_Semicolon" TOPLEVEL="ACTIVE" DYNAMIC="TRUE">
      <P>Semicolon</P>
  </RULE>

  <RULE NAME="Comma" ID="RID_Comma" TOPLEVEL="ACTIVE" DYNAMIC="TRUE">
    <P>Comma</P>
  </RULE>

  <RULE NAME="Dot" ID="RID_Dot" TOPLEVEL="ACTIVE" DYNAMIC="TRUE">
    <P>Dot</P>
  </RULE>

  <!--$integer._value: integer (Z) -->
  <RULE NAME="integer"  ID="RID_integer" TOPLEVEL="ACTIVE" DYNAMIC="TRUE">
    <P>
      <O>
        <RULEREF NAME="numeral_sign"/>
      </O>
      <P>
        <RULEREF NAME="natural_number"/>
      </P>
    </P>
  </RULE>

  <!--$integer._value: integer (Z) -->
  <RULE NAME="float"  ID="RID_float" TOPLEVEL="INACTIVE" DYNAMIC="TRUE">
    <P>
      <RULEREF NAME="integer"/>
      Dot
      <O>
        <RULEREF NAME="integer"/>
      </O>
    </P>
    <O>
      e
      <RULEREF NAME="integer"/>
    </O>
  </RULE>


  <!-- $natural_number._value: integer (N) -->
  <RULE NAME="natural_number"  ID="RID_natural_number" TOPLEVEL="INACTIVE">
    <P>
      <RULEREF NAME="cardinal"/>
    </P>
  </RULE>

  <!-- $natural_number._value: integer (N) -->
  <RULE NAME="cardinal"  ID="RID_cardinal" TOPLEVEL="INACTIVE">
    <L>
      <P>
        +zero
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_thousands"/>
      </P>
    </L>
  </RULE>

  <!-- $numeral_sign._value: {+,-} -->
  <RULE NAME="numeral_sign" ID="RID_numeral_sign" TOPLEVEL="INACTIVE">
    <L>
      <P DISP="-">
        negative
      </P>
      <P DISP="-">
        minus
      </P>
      <P DISP="+">
        positive
      </P>
      <P DISP="+">
        plus
      </P>
    </L>
  </RULE>

  <!-- $digit_nonzero._value: integer [1,9]-->
  <RULE NAME="digit_nonzero"  ID="RID_digit_nonzero" TOPLEVEL="INACTIVE">
    <L>
      <P>
        +one
      </P>
      <P>
        two
      </P>
      <P>
        three
      </P>
      <P>
        four
      </P>
      <P>
        five
      </P>
      <P>
        six
      </P>
      <P>
        seven
      </P>
      <P>
        eight
      </P>
      <P>
        nine
      </P>
    </L>

  </RULE>

  <!-- $teens._value: {10, 11, 12,..., 19} -->
  <RULE NAME="teens"  ID="RID_teens" TOPLEVEL="INACTIVE">
    <L>
      <P>
        ten
      </P>
      <P>
        eleven
      </P>
      <P>
        twelve
      </P>
      <P>
        thirteen
      </P>
      <P>
        fourteen
      </P>
      <P>
        fifteen
      </P>
      <P>
        sixteen
      </P>
      <P>
        seventeen
      </P>
      <P>
        eighteen
      </P>
      <P>
        nineteen
      </P>
    </L>
  </RULE>

  <!-- $tensfrag._value: {20, 30, 40,..., 90} -->
  <RULE NAME="tensfrag"  ID="RID_tensfrag" TOPLEVEL="INACTIVE">
    <L>
      <P>
        twenty
      </P>
      <P>
        thirty
      </P>
      <P>
        forty
      </P>
      <P>
        fifty
      </P>
      <P>
        sixty
      </P>
      <P>
        seventy
      </P>
      <P>
        eighty
      </P>
      <P>
        ninety
      </P>
    </L>
  </RULE>

  <!-- $cardinal_1_to_99._value: [1,99] -->
  <RULE NAME="cardinal_1_to_99"  ID="RID_cardinal_1_to_99" TOPLEVEL="INACTIVE">
    <L>
      <P>
        <RULEREF NAME="digit_nonzero"/>
      </P>
      <P>
        <RULEREF NAME="teens"/>
      </P>
      <P>
        <RULEREF NAME="tensfrag"/>
        <O>
          <RULEREF NAME="digit_nonzero"/>
        </O>
      </P>
    </L>
  </RULE>

  <!-- $cardinal_1_to_999._value: [1,999] -->
  <RULE NAME="cardinal_1_to_hundreds"  ID="RID_cardinal_1_to_hundreds" TOPLEVEL="INACTIVE">
    <L>
      <P>
        hundred
      </P>
      <P>
        <RULEREF NAME="digit_nonzero"/>
        hundred
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_99"/>
      </P>
      <P>
        <RULEREF NAME="digit_nonzero"/>
        hundred
        <O>
          and
        </O>
        <RULEREF NAME="cardinal_1_to_99"/>
      </P>

    </L>
  </RULE>

  <!-- $cardinal_1_to_999 999._value: [1,999 999] -->
  <RULE NAME="cardinal_1_to_thousands"  ID="RID_cardinal_1_to_thousands" TOPLEVEL="INACTIVE">
    <L>
      <P>
        thousand
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        thousand
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        thousand
        <RULEREF NAME="cardinal_1_to_hundreds"/>
      </P>
    </L>
  </RULE>

  <!-- $cardinal_1_to_999 999 999._value: [1,999 999 999] -->
  <RULE NAME="cardinal_1_to_millions"  ID="RID_cardinal_1_to_millions" TOPLEVEL="INACTIVE">
    <L>
      <P>
        million
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        million
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_thousands"/>
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        million
        <O>
          and
        </O>
        <RULEREF NAME="cardinal_1_to_thousands"/>
      </P>
    </L>
  </RULE>

  <!-- $cardinal_1_to_999 999 999 999._value: [1,999 999 999 999] -->
  <!--<RULE NAME="cardinal_1_to_billions"  ID="RID_cardinal_1_to_billions" TOPLEVEL="INACTIVE">
    <L>
      <P>
        billion
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        billion
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_millions"/>
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        billion
        <O>
          and
        </O>
        <RULEREF NAME="cardinal_1_to_millions"/>
      </P>
    </L>
  </RULE>-->

  <!-- $cardinal_1_to_999 999 999 999._value: [1,999 999 999 999 999] -->
  <!--<RULE NAME="cardinal_1_to_trillions"  ID="RID_cardinal_1_to_trillions" TOPLEVEL="INACTIVE">
    <L>
      <P>
        trillion
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        trillion
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_billions"/>
      </P>
      <P>
        <RULEREF NAME="cardinal_1_to_hundreds"/>
        trillion
        <O>
          and
        </O>
        <RULEREF NAME="cardinal_1_to_billions"/>
      </P>
    </L>
  </RULE>-->
</GRAMMAR>